import pandas as pd
#https://www3.bcb.gov.br/sgspub/localizarseries/localizarSeries.do?method=prepararTelaLocalizarSeries
#Taxa de juros - Meta Selic definida pelo Copom
url = 'http://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json&dataInicial=01/01/2000&dataFinal=20/08/2021'
juros = pd.read_json(url)
juros.head()
#alteração necessária para por em formato y/m/d
data = []
for i in range(len(juros.valor)):
dia = str(juros.data[i][:2])
mes = str(juros.data[i][3:5])
ano = str(juros.data[i][6:10])
data.append(int(ano+mes+dia))
juros.data = data
juros.data = pd.to_datetime(juros.data, format='%Y%m%d', errors='ignore')
juros.head()
import yfinance as yf
ibov = yf.download('^BVSP', start = '2000-01-01', end = '2021-08-20')
ibov.head()
ibov_norm = []
selic_norm = []
for i in ibov.Close:
ibov_norm.append((i - ibov.Close.min()) / (ibov.Close.max() - ibov.Close.min()))
for i in juros.valor:
selic_norm.append((i - juros.valor.min()) / (juros.valor.max() - juros.valor.min()))
import plotly.graph_objects as go
fig = go.Figure(data=[go.Scatter(x=juros.data, y=selic_norm, name="SELIC"),
go.Scatter(x=ibov.index, y=ibov_norm, name="IBOV")])
fig.show()
juros.set_index(juros.data, inplace=True)
result = pd.concat([juros, ibov[['Close','Volume']]], axis=1)
#correlação
result.corr()